The present invention relates to a robot control system which controls an articulated robot such as a legged walking type robot using a software program, and relates a method of introducing a robot control software program. Particularly, the present invention relates to a robot control system which controls, using a software program, an articulated robot which can substantially modify a hardware configuration when an operation unit such as a head unit or a limb unit is mounted, demounted, or interchanged, and relates to a method of introducing a robot control software program. More particularly, the present invention relates to a robot control system which controls an articulated robot using a software program formed of a combination of a software layer largely dependent on a hardware configuration and a software layer independent of the hardware configuration, and relates to a method of introducing a robot control software program. The present invention also relates to a robot control system which controls an articulated robot by dynamically modifying a combination of a hardware dependent software layer such as a middleware and a hardware independent software layer such as an application, and relates to a method of introducing a robot control software.
A machine that moves by means of electrical or magnetic effects mimicking the behavior of a human is called a xe2x80x9crobot.xe2x80x9d The term robot is said to be derived from Slavic word Robota (slave machine). In Japan, robots started to be widely used from the 1960s, and most of the robots were then industrial robots such as manipulators and conveyance robots for automating a production line in a plant or for use in an unmanned plant.
Research and development have advanced in moving legged walking robots that use feet in walking and stable walk control for the moving robots, such as pet-type or toy robots which imitate the living mechanisms and the behavior of quarupedalling animals such as the dog and the cat, and xe2x80x9chuman-like figuredxe2x80x9d or xe2x80x9chuman-typexe2x80x9d robots (humanoid robots) which imitate the living mechanism and the behavior of human beings or apes. Expectations of commercializing these robots are currently mounting. The legged walking robot is unstable and presents more difficulty in posture control and walking control than crawling robots. However, the legged walking robot is excellent in that the legged walking robot is flexible in walking and running, for instance, going up and down the stairs, and striding over an obstacle.
An installed robot, such as a robot arm, which is firmly planted at a particular location, is used for the assembling and selection of parts in a limited and local work space only. In contrast, the work space of the moving robot is not limited. The moving robot moves along a predetermined track or freely on a non-tracked area, performing any or predetermined job conventionally manually done by humans. The moving robot thus provides various services, instead of the human beings, the dogs, and other living things.
One of the applications of the legged walking robots is a diversity of risky and difficult jobs in industrial and production activities. For instance, in place of human beings, the legged walking robots are expected to perform risky and difficult jobs such as maintenance work in nuclear power plants, thermoelectric power plants, and petrochemical plants, conveyance and assembly operation of parts in production plants, cleaning operations on high-rise buildings, and rescue activities in the site of a fire.
Besides the above job assisting applications, the legged walking robots may perform a job which may be closely related to the living environments of human beings, namely, xe2x80x9csynergistic applicationxe2x80x9d or xe2x80x9centertainmentxe2x80x9d applications. This type of robots emulates the behavior of human beings or a variety of expressions of legged animals having a relatively high intelligence, such as dogs (pets), using the four legs. The robot not only performs faithfully an operation pattern input beforehand, but also dynamically responds to words and actions of a user (or another robot) (such as xe2x80x9cpraisingxe2x80x9d, xe2x80x9cchastisingxe2x80x9d, or xe2x80x9cbeatingxe2x80x9d). The robot is thus required to vividly respond to these actions and express their emotions.
Conventional toy machines offer fixed interactive relationship with a user operation, and cannot be modified according to the user""s preference. As a result, the user may grow tired of the toy that simply repeats the same operation.
In contrast, intelligent robots have a behavior model and a learning model which responds to a stimulation, and thinks in a self-determining manner and performs operation control by determining a behavior by changing the model in response to information input from outside, such as a voice, an image, and tactile sensation. The robot, having an emotion model and an instinct model, behaves in a self-determining manner based on the emotion and the instinct of the robot itself. With an image input device and a voice input and output device, the robot performs an image recognition process and a voice recognition process. The robot thus communicates with humans in a realistic manner at a highly intelligent level.
The legged walking robots currently have an excellent information processing capability, and such intelligent robots may be regarded as one type of computation system.
The robots have a diversity of rules about action in the forms of an emotion model, a behavior model, and a learning model. The robot then determines a behavior plan in response to an external stimulation such as a user action in accordance with these models, and carries out the behavior plan through driving a joint actuator or voice output, thereby giving a feedback to the user. The operation control of the robot to determine and carry out the behavior plan is performed by executing a program code (such as an application) on a computation system.
As for the main difference between an ordinary computation system and a robot, the computation systems are not so different in the type and combination of hardware components (namely, a hardware configuration) forming the system from system to system. The robots are significantly different in hardware configuration from robot to robot. For example, there is a diversity of legged walking robots. One robot includes a torso unit, and as movable units, a head unit, limb units, and a tail unit which are fixed to the torso unit. Another robot may be formed of a head unit and wheels only.
In the computation systems which are relatively standardized in the installed hardware configuration from system to system, design of software program executed on the system is less subject to the system hardware. In contrast, in the robot, the control software for operating the hardware is much more dependent on the hardware.
Now, moving control of a robot is considered. During movement and walking, stability determination criteria are totally different between when movement means is moving feet and when the movement means is a wheel, or between when the movement means is bipedaling and when the movement means is quadrupedaling, and thus, operation environments under which an application is performed are different from system to system.
In view of the above point, if the software layer less dependent on hardware is discriminated from the software layer more dependent on hardware, the software of the robot is efficiently developed. Specifically, hardware independent software and hardware dependent software are individually developed, and a product lineup having a diversity of characteristics and performance levels is provided by combining both types of software.
The hardware independent software includes applications that perform processes such as those for the emotion model, the behavior model, and the learning model, which are loosely related to hardware operation. The hardware dependent software is a middleware composed of a group of software modules for providing a basic function of the robot. The construction of each module is dependent on hardware attributes such as electromechanical characteristics and specifications of the robot. From the standpoint of function, middlewares may be mainly divided into recognition middlewares which process and recognize a signal input to each sensor and reports this signal to a hierarchically higher application, and output middlewares which control and drive hardware, such as each joint actuator, in response to a command issued by the application.
To permit any combination of applications and middlewares, a format according to which data and commands are exchanged between software layers needs to be established, in other words, an interface between programs needs to be established.
To introduce a software program into a variety of computation systems including robots, a new software program may be fed in a removable medium, or may be fed by downloading the software program through a network.
When a new software program is introduced into robots which are substantially different in hardware configuration from one to another, it is important that the introduced software be compatible with a target hardware configuration. Furthermore, it is necessary to assure that the newly introduced software is compatible with other software layer (in other words, a compatibility between an application and a middleware needs to be assured).
It is an object of the present invention to provide an excellent robot control system which controls an articulated robot, such as a legged walking type, using a software program, and to provide a method of introducing a robot control software program.
It is another object of the present invention to provide an excellent robot control system which controls, using a software program, an articulated robot which can substantially modify a hardware configuration when an operation unit such as a head unit or a limb unit is mounted, demounted, or interchanged, and to provide a method of introducing a robot control software program.
It is yet another object of the present invention to provide an excellent robot control system which controls an articulated robot using a software program formed of a combination of a software layer largely dependent on a hardware configuration and a software layer independent of the hardware configuration, and to provide a method of introducing a robot control software program.
It is still another object of the present invention to provide a robot control system which controls the articulated robot by dynamically modifying a combination of a hardware dependent software layer such as a middleware and a hardware independent software layer such as an application, and to provide a method of introducing a robot control software.
The present invention has been developed in view of the above objects, and in one aspect relates to a robot control system which controls a robot including a combination of a plurality of hardware elements using a hardware dependent software program and a hardware independent software program. The robot control system includes hardware independent software program providing means for providing the hardware independent software program, hardware dependent software program providing means for providing at least one hardware dependent software program, hardware configuration information acquisition means for acquiring hardware configuration information of the robot, hardware dependent software program selection means for selecting a hardware dependent software program, compatible with the hardware configuration information acquired by the hardware configuration information acquisition means, in the hardware dependent software providing means, and software introduction means for introducing, into the system, the hardware independent software program provided by the hardware independent software program providing means, and the hardware dependent software program selected by the hardware dependent software selection means.
The term xe2x80x9csystemxe2x80x9d here refers to a set of devices (or functional modules for carrying out a particular function) which is logically combined, and whether the devices or the function modules are housed in a single casing is not important.
In accordance with the robot control system of the first aspect of the present invention, the hardware dependent software providing means, namely, a memory device for storing a plurality of sets of robot hardware dependent software programs and the hardware independent software providing means, namely, a memory device for storing a plurality of sets of robot hardware independent software programs are prepared. At the startup of the robot and during the execution of software programs, a software program compatible with a robot hardware configuration is introduced from the former memory device, and this software program is dynamically combined with the set of hardware independent software programs. The robot is thus appropriately controlled, satisfying the needs of users.
The hardware independent software program and/or the hardware dependent software program is provided by the memory device which is permanently fixed to the body of the robot and the memory device which is replaceably mounted to the body of the robot.
A new software program and a software program satisfying the needs of the user may be fed to the body of the robot using the exchangeable memory device detachable from the robot body. The software introduction means controls the robot by using control software appropriately satisfying the needs of the user by introducing the hardware independent software and/or the hardware dependent software from the exchangeable memory device with priority placed thereon.
The software introduction means introduces the hardware independent software program and/or the hardware dependent software program from the fixed memory device when a usable hardware independent software program and/or a usable hardware dependent software program is not present in the exchangeable memory device or when the exchangeable memory device is not loaded.
The present invention in a second aspect relates to a robot control software program introducing method for introducing a hardware dependent software program and a hardware independent software program into a robot including a combination of a plurality of hardware configuration elements, and includes a hardware independent software program providing step for providing the hardware independent software program, a hardware dependent software program providing step for providing at least one hardware dependent software program, a hardware configuration information acquisition step for acquiring hardware configuration information of the robot, a hardware dependent software program selection step for selecting a hardware dependent software program, compatible with the hardware configuration information acquired in the hardware configuration information acquisition step, and provided in the hardware dependent software providing step, and a software introduction step for introducing, into a system, the hardware independent software program provided in the hardware independent software program providing step, and the hardware dependent software program selected in the hardware dependent software selection step.
In accordance with the robot control system of the second aspect of the present invention, a memory device for storing a plurality of sets of robot hardware dependent software programs and a memory device for storing a plurality of sets of robot hardware independent software programs are prepared. At the startup of the robot and during the execution of software programs, a software program compatible with the robot hardware configuration is introduced from the former memory device, and this software program is dynamically combined with the set of hardware independent software programs. The robot is thus appropriately controlled, thus satisfying the needs of users.
The hardware independent software program and/or the hardware dependent software program is provided by the memory device which is permanently fixed to the body of the robot and the memory device which is replaceably mounted to the body of the robot.
A new software program and a software program satisfying the needs of the user may be fed to the body of the robot using the exchangeable memory device detachable from the robot body. In the software introduction step, operation control of the robot is performed by using control software appropriately satisfying the needs of the user by introducing the hardware independent software and/or the hardware dependent software from the exchangeable memory device with priority placed thereon.
In the software introduction step, the hardware independent software program and/or the hardware dependent software program is introduced from the fixed memory device when a usable hardware independent software program and/or a usable hardware dependent software program is not present in the exchangeable memory device or when the exchangeable memory device is not loaded.
The present invention in a third aspect relates to a robot control system which controls a robot including a combination of a plurality of hardware elements using a hardware dependent software program and a hardware independent software program, wherein the hardware independent software program and/or the hardware dependent software program is provided by a memory device which is permanently fixed to the body of the robot and a memory device which is replaceably mounted to the body of the robot, wherein the robot control system controls the robot in one of a best match operation mode, an intercompatible operation mode, and a fixed operation mode, and wherein in the best match operation mode, the robot is controlled using the hardware dependent software program and the hardware independent software program introduced from the exchangeable memory, in the intercompatible operation mode, the robot is controlled using the hardware dependent software program introduced from the fixed memory device and the hardware independent software program introduced from the exchangeable memory device, and in the fixed operation mode, the robot is controlled using the hardware dependent software program and the hardware independent software program introduced from the fixed memory device.
A new software program and a software program satisfying the needs of the user may be fed to the body of the robot using the exchangeable memory device detachable from the robot body. The operation control of the robot is performed using control software appropriately satisfying the needs of the user by selecting the best match operation mode, the intercompatible operation mode, and the fixed operation mode in that order of priority.
Other objects, features, and advantages of the present invention become obvious from the following detailed description of the embodiments of the present invention, and the accompanying drawings.